Create PROCEDURE SP_ATUALIZA_DW_AGREGADO_FATO_VENDA_CLIENTE
AS
BEGIN
	DECLARE @IDTEMPO INT,
			@IDCLIENTE INT,
			@VALOR DECIMAL(11,2),
			@CDVENDA INT
	
	DELETE FROM AgregadoFatoVendaCliente
			
	DECLARE C_AGREGADO CURSOR FOR 
			SELECT  cdVenda, DimTempo_idTempo, DimCliente_idCliente, SUM(valor)
			FROM FatoVenda
			GROUP BY cdVenda, DimTempo_idTempo, DimCliente_idCliente
			
	OPEN C_AGREGADO
		FETCH NEXT FROM C_AGREGADO INTO @CDVENDA, @IDTEMPO, @IDCLIENTE, @VALOR
	
		WHILE (@@FETCH_STATUS = 0)
		BEGIN
			INSERT INTO AgregadoFatoVendaCliente (DimTempo_idTempo, DimCliente_idCliente, Valor, cdVenda, Quantidade)
			VALUES (@IDTEMPO, @IDCLIENTE, @VALOR, @CDVENDA, 1)
		
			FETCH NEXT FROM C_AGREGADO INTO @CDVENDA, @IDTEMPO, @IDCLIENTE, @VALOR
		END	
		
	CLOSE C_AGREGADO
	DEALLOCATE C_AGREGADO
END

exec SP_ATUALIZA_DW_AGREGADO_FATO_VENDA_CLIENTE

SELECT * FROM AgregadoFatoVendaCliente